๐ฏ Tujuan Pembelajaran
Setelah mempelajari materi ini, siswa diharapkan mampu:
- Menjelaskan pengertian Regression dalam Machine Learning.
- Membedakan masalah prediksi angka dengan masalah klasifikasi kategori.
- Mengenali feature dan target pada sebuah dataset.
- Mempersiapkan dataset sederhana menggunakan Python.
- Membagi data menjadi data training dan testing.
- Membuat model Linear Regression menggunakan scikit-learn.
- Menggunakan model untuk membuat prediksi angka.
- Mengukur kesalahan prediksi dengan MAE dan Rยฒ secara sederhana.
- Membuat visualisasi hubungan data dan garis prediksi.
- Menjelaskan mengapa data training harus cukup mewakili kondisi sebenarnya.
๐ Apa itu Regression?
Regression adalah salah satu jenis masalah dalam Machine Learning yang digunakan untuk mempelajari hubungan antara data masukan dan nilai target berbentuk angka.
Contohnya:
Regression vs Classification
| Regression | Classification |
|---|---|
| Target berupa angka. | Target berupa kategori/kelas. |
| Contoh: prediksi harga = 450 juta. | Contoh: lulus / tidak lulus. |
| Contoh: prediksi nilai = 82,5. | Contoh: bunga Iris setosa / versicolor / virginica. |
๐ Contoh Kasus: Prediksi Harga Rumah
Misalkan seorang peneliti memiliki data beberapa rumah. Setiap baris berisi luas rumah dan harga rumah.
| Luas Rumah (mยฒ) | Harga (juta rupiah) |
|---|---|
| 40 | 200 |
| 50 | 250 |
| 60 | 300 |
| 70 | 350 |
| 80 | 400 |
| 90 | 450 |
Kita ingin menggunakan data tersebut untuk memperkirakan harga rumah dengan luas yang belum ada di dataset.
Misalnya: berapa perkiraan harga rumah dengan luas 75 mยฒ?
๐ Dataset Sederhana
Dataset adalah kumpulan data yang digunakan untuk analisis atau pembelajaran model.
Untuk pembelajaran awal, kita dapat membuat dataset langsung menggunakan Python:
import pandas as pd
data = {
"luas": [40, 50, 60, 70, 80, 90, 100, 110],
"harga": [200, 250, 300, 350, 400, 450, 500, 550]
}
df = pd.DataFrame(data)
print(df)Setelah kode dijalankan, df menjadi tabel yang berisi dua kolom: luas dan harga.
Melihat informasi dataset
print("Jumlah baris:", len(df))
print("Kolom:", df.columns.tolist())
print(df.describe())๐ Feature dan Target
Dalam Machine Learning, kita sering membedakan data menjadi feature dan target.
Pada kasus rumah:
- Feature X = luas rumah
- Target y = harga rumah
X = df[["luas"]]
y = df["harga"]
print("Feature:")
print(X)
print("\nTarget:")
print(y)๐ Alur Regression Machine Learning
Penjelasan setiap tahap
Siapkan data yang relevan dengan masalah.
Tentukan data masukan dan angka yang ingin diprediksi.
Gunakan sebagian data untuk belajar dan sebagian untuk menguji model.
Gunakan algoritma regression, misalnya Linear Regression.
Berikan data baru kepada model.
Ukur seberapa dekat hasil prediksi dengan nilai sebenarnya.
๐ป Praktik Lengkap di Google Colab
Kita akan menggunakan Linear Regression karena konsepnya cukup mudah untuk pembelajaran awal.
Langkah 1 โ Import library
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression
from sklearn.metrics import mean_absolute_error, r2_scoreLangkah 2 โ Membuat dataset
data = {
"luas": [40, 50, 60, 70, 80, 90, 100, 110, 120, 130],
"harga": [200, 250, 300, 350, 400, 450, 500, 550, 600, 650]
}
df = pd.DataFrame(data)
display(df)Langkah 3 โ Menentukan X dan y
X = df[["luas"]]
y = df["harga"]โ๏ธ Membagi Data Training dan Testing
Kita dapat membagi data menjadi dua bagian. Data training digunakan untuk melatih model, sedangkan data testing digunakan untuk melihat bagaimana model bekerja pada data yang tidak digunakan saat proses belajar.
X_train, X_test, y_train, y_test = train_test_split(
X, y,
test_size=0.2,
random_state=42
)
print("Jumlah data training:", len(X_train))
print("Jumlah data testing :", len(X_test))test_size=0.2 berarti sekitar 20% data digunakan untuk testing dan sisanya untuk training.
๐ง Membuat Model Linear Regression
Sekarang kita membuat objek model dan melatihnya dengan data training.
model = LinearRegression()
model.fit(X_train, y_train)
print("Model selesai dilatih.")Perintah fit() berarti model mempelajari hubungan antara feature dan target berdasarkan data training.
Gambaran matematis sederhana
Linear Regression berusaha menemukan hubungan yang dapat digambarkan secara sederhana dengan persamaan:
y = prediksi targetx = featurea = koefisien/kemiringanb = interceptDalam contoh rumah, model mencoba mempelajari hubungan antara luas dan harga berdasarkan data yang tersedia.
๐ฎ Membuat Prediksi
Prediksi data testing
y_pred = model.predict(X_test)
print("Prediksi:")
print(y_pred)Prediksi rumah baru
Misalnya kita ingin memperkirakan harga rumah dengan luas 75 mยฒ.
data_baru = [[75]]
prediksi = model.predict(data_baru)
print("Perkiraan harga rumah:",
prediksi[0], "juta rupiah")๐ Evaluasi Model Regression
Prediksi tidak cukup hanya dilihat. Kita perlu mengukur seberapa jauh prediksi dari nilai sebenarnya.
1. MAE โ Mean Absolute Error
MAE menghitung rata-rata jarak absolut antara nilai sebenarnya dan nilai prediksi.
mae = mean_absolute_error(y_test, y_pred)
print("MAE:", mae)Jika MAE = 10 pada contoh harga dalam juta rupiah, secara sederhana rata-rata kesalahan absolut prediksi sekitar 10 juta rupiah pada data evaluasi tersebut.
2. Rยฒ โ R-squared
r2 = r2_score(y_test, y_pred)
print("Rยฒ:", r2)Rยฒ memberikan ukuran seberapa baik variasi target dapat dijelaskan oleh model pada data yang dievaluasi. Nilainya perlu dibaca bersama konteks, dataset, dan metrik lainnya.
๐ Visualisasi Data dan Garis Prediksi
Visualisasi membantu kita melihat hubungan antara data dan hasil model.
plt.figure(figsize=(8, 5))
plt.scatter(X, y, label="Data asli")
plt.plot(
X,
model.predict(X),
label="Garis regresi"
)
plt.xlabel("Luas rumah (mยฒ)")
plt.ylabel("Harga (juta rupiah)")
plt.title("Regression: Luas Rumah vs Harga")
plt.legend()
plt.show()Pada grafik, titik menunjukkan data yang tersedia, sedangkan garis menunjukkan hubungan yang dipelajari model.
๐งช Mengganti Dataset dengan Contoh Lain
Setelah memahami contoh rumah, siswa dapat mengganti masalah dengan contoh yang lebih dekat dengan kehidupan sehari-hari.
| Feature (X) | Target (y) | Pertanyaan |
|---|---|---|
| Jam belajar | Nilai | Berapa nilai yang diperkirakan dari jumlah jam belajar tertentu? |
| Umur kendaraan | Harga | Berapa perkiraan harga kendaraan berdasarkan umurnya? |
| Luas tanah | Harga | Berapa perkiraan harga tanah berdasarkan luas? |
| Jumlah iklan | Penjualan | Berapa perkiraan penjualan berdasarkan jumlah iklan? |
Contoh: Jam Belajar โ Nilai
import pandas as pd
data = {
"jam_belajar": [1, 2, 3, 4, 5, 6, 7, 8],
"nilai": [55, 60, 68, 72, 78, 84, 88, 92]
}
df = pd.DataFrame(data)
display(df)Kemudian ubah bagian feature dan target:
X = df[["jam_belajar"]]
y = df["nilai"]Setelah itu, langkah train_test_split(), LinearRegression(), fit(), predict(), dan evaluasi dapat digunakan kembali.
๐งฉ Mengapa Data Training Harus Mewakili Kondisi Sebenarnya?
Model belajar dari data. Jika data training terlalu sedikit, terlalu sempit, atau berbeda jauh dari kondisi ketika model digunakan, hasil prediksi dapat menjadi kurang sesuai.
Contoh sederhana
Misalnya kita membuat model harga rumah hanya menggunakan rumah dengan luas 40โ100 mยฒ di satu wilayah. Kemudian model digunakan untuk memprediksi rumah 500 mยฒ di wilayah yang sangat berbeda. Model mungkin tidak memiliki cukup informasi untuk membuat prediksi yang dapat diandalkan.
Pertanyaan utama
Apa yang terjadi jika data training yang digunakan tidak mewakili kondisi sebenarnya?
Model dapat menghasilkan prediksi yang kurang akurat atau kurang sesuai ketika digunakan pada kondisi nyata. Karena itu, kualitas dan keterwakilan data merupakan bagian penting dari Machine Learning.
๐ 5 Latihan Soal
Lihat pedoman jawaban
Lihat jawaban
Lihat pedoman jawaban
Lihat pedoman jawaban
Lihat pedoman jawaban
๐ ๏ธ 5 Tugas Praktik
Tugas 1 โ Regression Harga Rumah
Buat kembali model prediksi harga rumah menggunakan dataset minimal 10 baris.
- Tentukan feature luas rumah.
- Tentukan target harga.
- Bagi data training dan testing.
- Buat Linear Regression.
- Lakukan prediksi.
- Hitung MAE dan Rยฒ.
Output: kode, tabel dataset, hasil prediksi, nilai evaluasi, dan kesimpulan.
Tugas 2 โ Jam Belajar โ Nilai
Buat dataset minimal 12 siswa dengan kolom jam_belajar dan nilai. Gunakan regression untuk memprediksi nilai berdasarkan jumlah jam belajar.
Bonus: prediksi nilai untuk siswa yang belajar 6,5 jam.
Tugas 3 โ Umur Kendaraan โ Harga
Buat dataset minimal 12 kendaraan dengan feature umur_kendaraan dan target harga.
Buat model, lakukan prediksi satu kendaraan baru, lalu jelaskan apakah hasil prediksi masuk akal berdasarkan rentang data training.
Tugas 4 โ Bandingkan Dua Dataset
Buat dua dataset untuk masalah yang sama. Dataset A dibuat cukup beragam, sedangkan Dataset B dibuat sangat sempit.
Latih model pada keduanya dan bandingkan hasilnya. Jelaskan bagaimana keterwakilan data dapat memengaruhi prediksi.
Tugas 5 โ Proyek Mini Regression
Pilih salah satu kasus berikut:
- Luas tanah โ harga tanah
- Jumlah iklan โ penjualan
- Jam belajar โ nilai
- Umur kendaraan โ harga
Dataset minimal 20 baris. Program harus melakukan:
- Membaca atau membuat dataset.
- Menampilkan data.
- Menentukan feature dan target.
- Membagi training/testing.
- Membuat model regression.
- Membuat minimal 3 prediksi.
- Menghitung MAE dan Rยฒ.
- Membuat grafik data dan garis regression.
- Menjelaskan keterbatasan model.
- Menjawab pertanyaan: โApa yang terjadi jika data training tidak mewakili kondisi sebenarnya?โ
Output: notebook Google Colab + laporan singkat berisi dataset, proses, hasil, grafik, evaluasi, dan kesimpulan.
Checklist Pengumpulan
๐ญ Pertanyaan Refleksi
- Apa perbedaan utama Regression dan Classification?
- Mengapa harga rumah termasuk target berbentuk angka?
- Apa fungsi data training?
- Apa fungsi data testing?
- Apa arti sederhana MAE dalam hasil evaluasi?
- Mengapa kita perlu melihat grafik selain angka evaluasi?
- Apa yang terjadi jika dataset terlalu sedikit?
- Apa yang terjadi jika data training tidak mewakili kondisi sebenarnya?
- Mengapa memprediksi jauh di luar rentang data training dapat berisiko?
- Menurutmu, apa saja data tambahan yang dapat membuat prediksi harga rumah menjadi lebih realistis?
๐ Ringkasan
- Regression digunakan untuk memprediksi nilai berbentuk angka.
- Contohnya adalah luas rumah โ harga rumah dan jam belajar โ nilai.
- Feature (X) adalah data masukan yang digunakan untuk membuat prediksi.
- Target (y) adalah nilai yang ingin diprediksi.
- Data dapat dibagi menjadi training dan testing.
- Linear Regression dapat digunakan sebagai model sederhana untuk mempelajari hubungan antarvariabel.
- Model dapat digunakan untuk membuat prediksi pada data baru.
- MAE membantu mengukur rata-rata kesalahan absolut prediksi.
- Rยฒ memberikan ukuran tambahan tentang seberapa baik variasi target dijelaskan model pada data evaluasi.
- Visualisasi membantu memahami hubungan data dan hasil model.
- Data training harus cukup relevan dan mewakili kondisi penggunaan.
- Prediksi Machine Learning adalah perkiraan berdasarkan data, bukan jaminan nilai sebenarnya.
๐ Tantangan Tambahan
Setelah menyelesaikan proyek, coba ubah kasus dari satu feature menjadi beberapa feature.
Contoh prediksi harga rumah menggunakan:
- luas rumah,
- jumlah kamar,
- umur bangunan.
Diskusikan: apakah menambahkan feature selalu membuat model menjadi lebih baik? Bagaimana cara membuktikannya dengan data testing?
๐ Google Colab
Gunakan Google Colab untuk menjalankan seluruh contoh Python pada materi ini.
Materi Pembelajaran Koding dan Kecerdasan Artifisial โข Machine Learning โข Regression โข Python โข Google Colab